Coherent gestures on touchpads and touchscreens

ABSTRACT

In non-limiting examples of the present disclosure, systems, methods and devices for executing gesture operations are provided. A touchpad gesture manager and a touchscreen gesture manager may be maintained. Both managers may comprise the identities of gesture operations and conditions for executing the gesture operations. The conditions for one or more touchscreen gesture operations may be the same as the conditions for one or more corresponding touchpad gesture operations. The gestures that have same conditions for the touchscreen and the touchpad may comprise application window operations and virtual desktop transition operations. In some examples, one or more display elements, animations, or intermediate operations may be different in executing the touchscreen operations than for executing the touchpad operations.

BACKGROUND

Touchscreens have become nearly ubiquitous across client computingdevices (e.g., laptops, desktops, smart phones, tablets). Users ofcomputing devices have been accustomed to initiating actions (e.g.,shortcuts, gestures) on computing devices with keyboards and touchpadsthat have either not traditionally been available via touchscreen input,or that have different mechanisms of initiation.

It is with respect to this general technical environment that aspects ofthe present technology disclosed herein have been contemplated.Furthermore, although a general environment has been discussed, itshould be understood that the examples described herein should not belimited to the general environment identified in the background.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription section. This summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor is itintended to be used as an aid in determining the scope of the claimedsubject matter. Additional aspects, features, and/or advantages ofexamples will be set forth in part in the description which follows and,in part, will be apparent from the description or may be learned bypractice of the disclosure.

Non-limiting examples of the disclosure provide systems, methods, anddevices for executing touchscreen gestures that have same or similarconditions of execution as their touchpad counterparts. According to afirst example, a computer-readable storage device is provided. Thecomputer readable storage device comprises executable instructions that,when executed by a processor, assist with executing gesture operations,the computer-readable storage device including instructions executableby the processor for: maintaining a touchpad gesture manager comprising:an identity of a touchpad gesture operation, a first condition ofexecution of the touchpad gesture operation, wherein the first conditionof execution comprises an input of a number of digits on a touchpad, anda second condition of execution of the touchpad gesture operation,wherein the second condition of execution comprises a movement type ofthe number of digits in a same direction on the touchpad; andmaintaining a touchscreen gesture manager comprising: an identity of atouchscreen gesture operation corresponding to the touchpad gestureoperation, a first condition of execution of the touchscreen gestureoperation, wherein the first condition of execution comprises an inputof the number of digits on a touchscreen, and a second condition ofexecution of the touchscreen gesture operation, wherein the secondcondition of execution comprises the movement type of the number ofdigits in the same direction on the touchscreen.

According to an additional example, a computer-implemented method isprovided. The computer-implemented method comprises: executing a firstsoftware application instance in a first application window and a secondsoftware application instance in a second application window, whereinthe first application window is displayed at a top of a z-order of auser interface displayed on a touchscreen; receiving, by thetouchscreen, a multi-digit touch input; determining that a number ofdigits that are in contact with the touchscreen is mapped to a firstcondition of execution of a touchscreen gesture operation; modifying,based on the determination that the number of digits that are in contactwith the touchscreen is mapped to the first condition of the touchscreengesture operation, a display property of the first application windowand the second application window; determining a movement of themulti-digit touch input on the touchscreen; determining that themovement fulfills a second condition of execution of the touchscreengesture operation; and executing the touchscreen gesture operation,wherein execution of the touchscreen gesture operation comprises causingthe second application window to be displayed at the top of the z-orderof the user interface.

According to an additional example, a system is provided. The systemcomprises: a memory for storing executable program code; and aprocessor, functionally coupled to the memory, the processor beingresponsive to computer-executable instructions contained in the programcode and operative to: maintain a first virtual desktop and a secondvirtual desktop, wherein the first virtual desktop is currentlydisplayed on a touchscreen; receive, by the touchscreen, a multi-digittouch input; determine that a number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of atouchscreen gesture operation; modify, based on the determination thatthe number of digits that are in contact with the touchscreen is mappedto the first condition of the touchscreen gesture operation, a displayproperty of the first virtual desktop; determine a movement of themulti-digit touch input on the touchscreen; determine that the movementfulfills a second condition of execution of the touchscreen gestureoperation; and execute the touchscreen gesture operation, whereinexecution of the touchscreen gesture operation comprises causing apreview element of the second virtual desktop to be currently displayedon the touchscreen.

BRIEF DESCRIPTION OF THE DRAWINGS

Non-limiting and non-exhaustive examples are described with reference tothe following figures:

FIG. 1 is a schematic diagram illustrating an example computingenvironment for executing touchscreen gestures that have same conditionsof execution as their touchpad counterparts.

FIG. 2 is a block diagram of a touchscreen gesture operation identifier,which may be included in a touchscreen gesture manager for a computingdevice, and a touchpad gesture operation identifier, which may beincluded in a touchpad gesture manager for a computing device.

FIG. 3 illustrates the execution and display result of an applicationwindow transition gesture operation, which has been initiated via touchinput on a touchscreen.

FIG. 4 illustrates the execution and display result of an additionaltouchscreen gesture input on the application preview elements surfacedvia execution of the application window transition gesture operation ofFIG. 3 .

FIG. 5 illustrates the execution and display result of a virtual desktoptransition gesture operation, which has been initiated via a touch inputon a touchscreen.

FIG. 6 illustrates the execution and display result of removal of thedigits from the touchscreen of FIG. 4 after the second condition of thevirtual desktop transition operation is satisfied.

FIG. 7 illustrates the execution and display result of an applicationwindow minimizing gesture operation, which has been initiated via atouch input on a touchscreen.

FIG. 8 illustrates the execution and display result of an applicationwindow restore gesture operation, which has been initiated via a touchinput on a touchscreen.

FIG. 9A is an exemplary method for assisting with gesture operations.

FIG. 9B is an exemplary method for executing an application windowtransition gesture operation.

FIG. 9C is an exemplary method for executing a virtual desktoptransition gesture operation.

FIGS. 10 and 11 are simplified diagrams of a mobile computing devicewith which aspects of the disclosure may be practiced.

FIG. 12 is a block diagram illustrating example physical components of acomputing device with which aspects of the disclosure may be practiced.

FIG. 13 is a simplified block diagram of a distributed computing systemin which aspects of the present disclosure may be practiced.

DETAILED DESCRIPTION

Various embodiments will be described in detail with reference to thedrawings, wherein like reference numerals represent like parts andassemblies throughout the several views. Reference to variousembodiments does not limit the scope of the claims attached hereto.Additionally, any examples set forth in this specification are notintended to be limiting and merely set forth some of the many possibleembodiments for the appended claims.

Examples of the disclosure provide systems, methods, and devices forexecuting touchscreen gestures that have same or similar conditions ofexecution as their touchpad counterparts. As described herein, a“gesture” comprises an input of one or more digits (e.g., fingers,capacitive objects) on a touchpad or touchscreen, and a movement of theone or more digits on the touchpad or touchscreen.

In some examples, a computing device may maintain a touchscreen gesturemanager. The touchscreen gesture manager may comprise the identities ofone or more gesture operations that can be executed via one or moretouchscreen gestures. The touchscreen gesture manager may also comprisea first condition for executing each of the touchscreen gestures, and asecond condition for executing each of the touchscreen gestures. Thefirst and second conditions may be same or different for each of thetouchscreen gestures. In some examples, the first condition may comprisereceiving an input of a specific number of digits concurrently on thetouchscreen, and a second condition may comprise receiving a movement ofthe number of digits on the touchscreen in a specific direction and/orof a specific length. In some examples, a touchscreen gesture operationmay comprise one or more intermediary operations, which may be executedupon determining that a condition of the touchscreen gesture operationhas been satisfied.

In examples where the computing device includes or is connected to atouchpad, the computing device may also comprise a touchpad gesturemanager. The touchpad gesture manager may comprise the identities of oneor more gesture operations that can be executed via one or more touchpadgestures. The touchpad gesture manager may also comprise a firstcondition for executing each of the touchpad gestures, and a secondcondition for executing each of the touchpad gestures. The first andsecond conditions may be same or different for each of the touchpadgestures. In some examples, the first condition for one or more of thetouchpad gestures may comprise the receiving, by the touchpad, of aninput of a same number of digits as is required to be input on thetouchscreen to satisfy the first condition of a same or similartouchscreen gesture. Similarly, the second condition for one or more ofthe touchpad gestures may comprise the receiving, by the touchpad, of asame input movement of the same number of digits as is required to beinput on the touchscreen to satisfy the second condition of a same orsimilar touchscreen gesture. Like touchscreen gesture operations,touchpad gesture operations may comprise one or more intermediaryoperations, which may be executed upon determining that a condition ofthe touchpad gesture operation has been satisfied.

According to some examples, upon determining that a first condition of atouchscreen input has been satisfied, one or more elements displayed onthe touchscreen may be modified to indicate that further input (e.g., aninput completing a gesture) may affect those one or more elements. Forexample, if a determination is made that a first condition of anapplication window transition gesture operation has been satisfied, oneor more display properties of one or more application windows may bemodified. In another example, if a determination is made that a firstcondition of a virtual desktop transition operation has been satisfied,one or more display properties of a currently displayed desktop may bemodified. As described herein, a “virtual desktop” comprises a uniqueset of applications, files, registry entries, settings, user interfacelayouts, and/or active application windows, which may be transitioned toon a computing device. Thus, a single computing device may maintainmultiple virtual desktops that may each have a set of unique features,and users may switch to a virtual desktop that best fits the user'scurrent context (e.g., switch to a virtual desktop with workapplications and files when at work, switch to a personal virtualdesktop with personal applications and files when at home).

The systems, methods, and devices described herein provide technicaladvantages for initiating gesture operations across touchpads andtouchscreens. Users often have to learn different gestures for each oftheir devices, and even sometimes for the same device (e.g., 2-in-1devices) depending on whether they are using the touchpad or thetouchscreen. This steep learning curve makes it difficult for users tolearn and remember gestures that accelerate the way they interact withcomputer systems. Aspects of the current disclosure enable the samegestures on the touchscreen as already exist on the touchpad. Thisenables users to leverage already-learned patterns to help them interactwith touchscreens in new but also familiar ways. In some examples,memory costs associated with maintaining different gesture identitiesand different gesture conditions may be reduced by having a single setof gestures and a single set of gesture conditions that apply across thetouchscreen and the touchpad. Computing costs (e.g., CPU cycles) mayalso be reduced according to examples described herein, in that somegestures that previously required longer workflows can now be executedvia simplistic gestures and processing of those gesture inputs. Forexample, rather than having to process multiple menu inputs and/orsearch commands from a touchscreen to switch virtual desktops, a simpletwo input touchscreen gesture may be utilized and processed (e.g.,detecting a multi-digit input and a lateral movement of that multi-digitinput on the touchscreen) to perform that same action.

FIG. 1 is a schematic diagram illustrating an example computingenvironment 100 for executing touchscreen gestures that have sameconditions of execution as their touchpad counterparts. Computingenvironment 100 includes computing device 102 and devicesoftware/firmware 108. Computing device 102 is representative of aclient computing device on which the mechanisms described herein may bepracticed. Computing device 102 may comprise a laptop computing device,a tablet computing device, a desktop computing device, or a smart phone.Computing device 102 may or may not include an attached, or otherwiseconnected (e.g., wired connection, wireless connection), keyboard and/ortouchpad. Computing device 102 includes touchscreen 104, which mayreceive touch inputs that may initiate the execution of touchscreengesture operations. Computing device 102 also includes touchpad 106,which may receive touch inputs that may initiate the execution oftouchpad gesture operations.

Device software/firmware 108 represents software and/or firmware thatmay be installed on, or otherwise accessed by, computing device 102.Device software/firmware 108 includes touchscreen gesture manager 110,touchpad gesture manager 112, and gesture activated shell operationexecutor 126.

Touchscreen gesture manager 110 includes touchscreen digit detectionengine 114, touchscreen digit movement detection engine 116, andtouchscreen gesture operation identifier 118. Touchscreen digitdetection engine 114 may receive and register indications that touchinputs (e.g., finger touch inputs, stylus touch inputs) have been madeto touchscreen 104. Touchscreen digit detection engine 114 may registera location on touchscreen 104 where a touch input is being made. If morethan one touch input is received contemporaneously by touchscreen 104,touchscreen digit detection engine 114 may register the number of touchinputs that are being contemporaneously received in addition to theirlocations on touchscreen 104.

Touchscreen digit movement detection engine 116 may receive and registerindications that touch inputs to touchscreen 104 have moved. Touchscreendigit movement detection engine 116 may register a location ontouchscreen 104 where a touch input began, a location on touchscreen 104where a touch input ended, and/or locations where a touch input movedfrom a starting location of touchscreen 104 to an end location oftouchscreen 104. If more than one touch input is receivedcontemporaneously by touchscreen 104, touchscreen digit movementdetection engine 116 may register the start, end, and movement areas ontouchscreen 104 where the touch inputs were received and moved to. Thus,touchscreen digit movement detection engine 116 may register a directionof movement of one or more touch inputs on touchscreen 104, a distanceof movement on touchscreen 104 of one or more touch inputs, and a speedof movement on touchscreen 104 of one or more touch inputs.

Touchscreen gesture operation identifier 118 may comprise the identityof one or more touchscreen gesture operations that maybe initiated viaone or more touch inputs and/or touch movements on touchscreen 104, aswell as one or more conditions for executing the one or more touchscreengesture operations. In some examples, touchscreen gesture operationidentifier 118 may include identities of touchscreen gesture operationsthat have a corresponding touchpad gesture operation included intouchpad gesture operation identifier 124. That is, the identity oftouchscreen gesture operations in touchscreen gesture operationidentifier 118 may have same or similar conditions for executing a sameor similar gesture operation via touchpad 106. Examples of touchscreengesture identities included in touchscreen gesture manager 110 include,but are not limited to, an application window transition operation, avirtual desktop transition operation, an application window minimizationoperation, and an application window restore operation. In someexamples, a gesture operations may comprise one or more intermediaryoperations. Additional details relating to the touchscreen operationsand execution conditions associated with the touchscreen operations areprovided below in relation to FIG. 2 .

Touchscreen gesture manager 110 may determine whether one or moreconditions for execution of one or more touchscreen gesture operationshave been met. If a determination is made that one or more conditionsfor execution of one or more touchscreen gestures have been met,touchscreen gesture manager 110 may send a notification to gestureactivated shell operation executor 126 that the one or more conditionsfor execution of the one or more touchscreen gestures have been met. Insome examples, the notification may include the identity of the one ormore gesture operations for which execution conditions have been met.Some touchscreen gesture operations may include a set of intermediaryoperations and each of the intermediary operations in a set may have adistinct condition of execution. Thus, in some examples, touchscreengesture manager 110 may determine whether one or more conditions forexecution of one or more intermediary operations for a touchscreengesture have been met. If a determination is made that one or moreconditions for execution of one or more intermediary operations for atouchscreen gesture have been met, touchscreen gesture manager 110 maysend a notification to gesture activated shell operation executor 126that the one or more conditions have been met. In some examples, thenotification may include the identity of the one or more intermediaryoperations.

Touchpad gesture manager 112 includes touchpad digit detection engine120, touchpad digit movement detection engine 122, and touchpad gestureoperation identifier 124. Touchpad digit detection engine 120 mayreceive and register indications that touch inputs (e.g., finger touchinputs, stylus touch inputs) have been made to touchpad 106. Touchpaddigit detection engine 120 may register a location on touchpad 106 wherea touch input is being made. If more than one touch input is receivedcontemporaneously by touchpad 106, touchpad digit detection engine 120may register the number of touch inputs that are being contemporaneouslyreceived in addition to their locations on touchpad 106.

Touchpad digit movement detection engine 122 may receive and registerindications that touch inputs to touchpad 106 have moved. Touchpad digitmovement detection engine 122 may register a location on touchpad 106where a touch input began, a location on touchpad 106 where a touchinput ended, and/or locations where a touch input moved from a startinglocation of touchpad 106 to an end location of touchpad 106. If morethan one touch input is received contemporaneously by touchpad 106,touchpad digit movement detection engine 122 may register the start,end, and movement areas on touchpad 104 where the touch inputs werereceived and moved to. Thus, touchpad digit detection engine 122 mayregister a direction of movement of one or more touch inputs on touchpad106, a distance of movement on touchpad 106 of one or more touch inputs,and a speed of movement on touchpad 106 of one or more touch inputs.

Touchpad gesture operation identifier 124 may comprise the identity ofone or more touchpad gesture operations that may be initiated via one ormore touch inputs and/or touch movements on touchpad 106, as well as oneor more conditions for executing the one or more touchpad gestureoperations. In some examples, touchpad gesture operation identifier 124may include identities of touchpad gesture operations that have acorresponding touchscreen gesture operation included in touchscreengesture operation identifier 118. That is, the identity of touchpadgesture operations in touchpad gesture operation identifier 124 may havesame or similar conditions for executing a same or similar gestureoperation via touchscreen 104. Examples of touchpad gesture identitiesincluded in touchpad gesture operation identifier 124 include, but arenot limited to, an application window transition operation, a virtualdesktop transition operation, an application window minimizationoperation, and an application window restore operation. Additionaldetails relating to the touchpad operations and execution conditionsassociated with the touchpad operations are provided below in relationto FIG. 2 .

Touchpad gesture manager 112 may determine whether one or moreconditions for execution of one or more touchpad gesture operations havebeen met. If a determination is made that one or more conditions forexecution of one or more touchpad gestures have been met, touchpadgesture manager 112 may send a notification to gesture activated shelloperation executor 126 that the one or more conditions for execution ofthe one or more touchpad gestures have been met. In some examples, thenotification may include the identity of the one or more gestureoperations for which execution conditions have been met. Some touchpadgesture operations may include a set of intermediary operations and eachof the intermediary operations may have a distinct condition ofexecution. Thus, in some examples, touchpad gesture manager 112 maydetermine whether one or more conditions for execution of one or moreintermediary operations for a touchpad gesture have been met. If adetermination is made that one or more conditions for execution of oneor more intermediary operations for a touchpad gesture have been met,touchpad gesture manager 112 may send a notification to gestureactivated shell operation executor 126 that the one or more conditionshave been met. In some examples, the notification may include theidentity of the one or more intermediary operations.

Gesture activated shell operation executor 126 includes joint shelloperations 128 and differing operation elements 130. Joint shelloperations 128 includes identities of gesture operations that have sameor similar conditions of execution for touchpad 106 and touchscreen 104,as well as same or similar operations that may be performed once theconditions of execution are met. Joint shell operations 128 mayadditionally include instructions and/or application programminginterfaces (APIs) for causing one or more operating system elements(e.g., shell elements, desktop elements, application window elements) toexecute gesture operations upon receiving an indication that one or moreconditions for execution have been met. In this example, joint shelloperations 128 includes identities, instructions for executing, and/orAPIs for application window transition operation 132, virtual desktoptransition operation 134, application window minimization operation 136,application window restore operation 137, and one or more additionaloperations illustrated as gesture operation N 138.

Differing operation elements 130 includes various aspects of gestureoperations that may differ between a touchscreen version of a gestureoperation and a corresponding touchpad version of a gesture operation.For example, some of joint shell operations 128 may differ slightly inone or more ways in which the operation is executed, while having sameconditions for initiation and execution. For example, differentgraphical animations may be played for one or more joint shelloperations, as illustrated by modify animation element(s) 140; differentdisplay elements of one or more display objects (e.g., applicationwindows, virtual desktops) may be rendered for one or more joint shelloperations, as illustrated by modify display element(s) 142; differenthaptic feedback may be generated for one or more joint shell operations,as illustrated by modify haptic element(s) 144; and different audiooutput may be generated for one or more joint shell operations, asillustrated by modify audio element(s) 146.

Joint shell operations 128 may be executed differently on thetouchscreen than for the touchpad to improve the user experienceassociated with interacting with a touchscreen. That is, users interactin a unique manner with touchscreens compared to the manner in whichthey interact with touchpads, and therefore there are differentanimation elements, display elements, haptic elements, and/or audioelements that may be executed in association with touchscreen initiatedgesture operations, that improve the touchscreen experience comparedwith the touchpad initiated gesture operations. Additionally,touchscreens have additional properties (e.g., display properties)available to them that touchpads do not have, and those properties maybe leveraged to improve the user experience associated with touchscreengesture operations that are common to touchscreens and touchpads.

Gesture activated shell operation executor 126 may receive indicationsfrom touchscreen gesture manager 110 and touchpad gesture manager 112that conditions for executing gesture operations have been met. Uponreceiving an indication that conditions for executing a gestureoperation have been met, gesture activated shell operation executor 126may execute the gesture operation. As described above, the conditionsfor initiating and executing joint shell operations 128 are the same ontouchpad 106 and touchscreen 104 (e.g., the same number of digit inputsneeds to be detected on either the touchpad or the touchscreen, the samedirectional movement of the number of digit inputs needs to be detectedon either the touchpad or the touchscreen), although the execution ofthose joint shell operations 128 may differ depending on the type ofgesture operation that is being executed.

FIG. 2 is a block diagram of a touchscreen gesture operation identifier202, which may be included in a touchscreen gesture manager for acomputing device, and a touchpad gesture operation identifier 228, whichmay be included in a touchpad gesture manager for a computing device.Touchscreen gesture operation identifier 202 may comprise the identityof one or more touchscreen gesture operations that may be initiated viaone or more touch inputs and/or touch movements on a touchscreen, aswell as one or more conditions for executing the one or more touchscreengesture operations. In some examples, touchscreen gesture operationidentifier 202 may include identities of touchscreen operations thathave a corresponding touchpad gesture operation included in touchpadgesture operation identifier 228.

In this example, touchscreen gesture operation identifier 202 includesidentities of four gesture operations that have same conditions forinitiating and/or executing a gesture operation via the touchscreen as acorresponding gesture operation identified in touchpad gesture operationidentifier 228, although the conditions for satisfying the gesturesincluded in gesture operation identifier 228 would be met via touchpadinput rather than touchscreen input. It should be understood that theremay be more or fewer gesture operations that are included in touchscreengesture operation identifier 202. The four touchscreen gestureoperations included in touchscreen gesture operation identifier 202 areapplication window transition operation 204, virtual desktop transitionoperation 210, application window minimization operation 216, andapplication window restore operation 222.

Application window transition operation 204, when executed (e.g., whenfirst condition 206 and second condition 208 are satisfied), may causeone or more application window previews of open (although notnecessarily currently displayed) application windows to be displayed forselection. The application window previews may comprise live or staticrepresentations of the open application windows. In some examples, amost recently used application window may have its corresponding previewbrought to a top of a z order of application window previews, and one ormore application window previews may be ordered based on times that theywere last interacted with or otherwise brought to the foreground. Theapplication window previews may be graphically switched (e.g., adifferent window may be surfaced at the top of the z order) uponreceiving a subsequent touchscreen interaction (e.g., a multi-digitlateral movement on the touchscreen). In some examples, selection of anapplication preview window may cause the corresponding applicationwindow to be surfaced and/or maximized on a user interface displayed onthe touchscreen.

Application window transition operation 204 includes first condition206, and second condition 208. First condition 206 may comprise arequirement that the touchscreen receive a touch input of a specificnumber of digits (e.g., three digits, two digits). Second condition 208may comprise a requirement that the touchscreen receive a movement ofthe specific number of digits in a lateral direction on the touchscreen.In some examples, the lateral movement of the specific number of digitsmay have to be of a threshold distance. The threshold distance may bedifferent depending on a size of the touchscreen. In some examples, uponreceiving an indication that first condition 206 has been satisfied,gesture activated shell operation executor 126 may modify a displayproperty of one or more open application windows to indicate to a userthat a further input (e.g., an input that satisfies second condition208) may affect one or more open application windows. In some examples,the display property modification may comprise shrinking one or moreopen application windows, highlighting one or more open applicationwindows, adding a border to one or more open application windows, and/orcoloring one or more open application windows. The modification of adisplay property of one or more open application windows may comprise anintermediary operation of application window transition operation 204.

Virtual desktop transition operation 210, when executed (e.g., whenfirst condition 212 and second condition 214 are satisfied), may causeone or more virtual desktop previews to be displayed for selection. Thevirtual desktop previews may comprise live or static representations ofvirtual desktops executed by the computing device (e.g., computingdevice 102). In some examples, a most recently used virtual desktop mayhave its corresponding preview brought to a top of a z order of virtualdesktop previews, and one or more virtual desktop previews may beordered based on times they were last interacted with. The virtualdesktop previews may be graphically switched (e.g., a different virtualdesktop may be surfaced) upon receiving a subsequent touchscreeninteraction (e.g., a multi-digit lateral movement on the touchscreen).In some examples, selection of a virtual desktop preview may cause thecorresponding virtual desktop to be surfaced and/or maximized on a userinterface displayed on the touchscreen.

Virtual desktop transition operation 212 includes first condition 212and second condition 214. First condition 212 may comprise a requirementthat the touchscreen receive a touch input of a specific number ofdigits (e.g., three digits, four digits). Second condition 214 maycomprise a requirement that the touchscreen receive a movement of thespecific number of digits in a lateral direction on the touchscreen. Insome examples, the lateral movement of the specific number of digits mayhave to be of a threshold distance. The threshold distance may bedifferent depending on a size of the touchscreen. In some examples, uponreceiving an indication that first condition 212 has been satisfied,gesture activated shell operation executor 126 may modify a displayproperty of the virtual desktop that is currently being executed toindicate to a user that a further input (e.g., an input that satisfiessecond condition 214) may affect one or more virtual desktops. In someexamples, the display property modification may comprise shrinking thevirtual desktop that is currently being executed and displayed,highlighting the virtual desktop that is currently being executed anddisplayed, adding a border to the virtual desktop that is currentlybeing displayed, and/or coloring the virtual desktop that is currentlybeing displayed. The modification of a display property of the virtualdesktop that is currently being executed may comprise an intermediaryoperation of virtual desktop transition operation 210.

Application window minimization operation 216, when executed (e.g., whenfirst condition 218 and second condition 220 are satisfied), may causeone or more application windows that are currently open to be minimizedThat is, each application window that is open, although not necessarilydisplayed, may be minimized upon execution of application windowminimization operation 216.

Application window minimization operation 216 includes first condition218 and second condition 220. First condition 218 may comprise arequirement that the touchscreen receive a touch input of a specificnumber of digits (e.g., two digits, three digits). Second condition 220may comprise a requirement that the touchscreen receive a movement ofthe specific number of digits in a downward vertical direction on thetouchscreen. In some examples, the downward vertical direction on thetouchscreen may have to be of a threshold distance. The thresholddistance may be different depending on the size of the touchscreen. Insome examples, upon receiving an indication that first condition 218 hasbeen satisfied, gesture activated shell operation executor 126 maymodify a display property of one or more open application windows toindicate to a user that a further input (e.g., an input that satisfiessecond condition 220) may affect one or more open application windows.In some examples, the display property modification may compriseshrinking one or more open application windows, highlighting one or moreapplication windows, adding a border to one or more open applicationwindows, and/or coloring one or more application windows. Themodification of a display property of one or more open applicationwindows may comprise an intermediary operation of application windowminimization operation 216.

Application window restore operation 222, when executed (e.g., whenfirst condition 224 and second condition 226 are satisfied), may causeone or more minimized application windows to be restored. In someexamples, each application window that was minimized may be restored tothe position it previously occupied prior to being minimized. In otherexamples, each application window that was minimized may be restored toa fully maximized position, with a position in the z-order beingdetermined based on a ranking. In some examples, the ranking may bebased on time of last use (e.g., ordered based on a time that eachwindow last held the foreground position). In other examples, theranking may be based on a determined relevance to a current task that auser is working on with the computer executing the application windows.

Application window restore operation 222 includes first condition 224and second condition 226. First condition 224 may comprise a requirementthat the touchscreen receive a touch input of a specific number ofdigits (e.g., three digits, four digits). Second condition 226 maycomprise a requirement that the touchscreen receive a movement of thespecific number of digits in an upward vertical direction on thetouchscreen. In some examples, the upward vertical movement of thespecific number of digits may have to be of a threshold distance. Thethreshold distance may be different depending on the size of thetouchscreen. In some examples, upon receiving an indication that firstcondition 224 has been satisfied, gesture activated shell operationexecutor may cause one or more application window preview elementscorresponding to the minimized application windows to be surfaced. Theone or more application window preview elements may comprise live orstatic versions of the application windows. The application windowpreview elements may have a smaller size than the size of theapplication windows prior to their minimization. In other examples, noapplication preview elements may be surfaced upon receiving theindication that first condition 224 has been satisfied. The modificationof a display property of one or more open application windows maycomprise an intermediary operation of application window restoreoperation 222.

Touchpad gesture operation identifier 228 may comprise the identity ofone or more touchpad gesture operations that may be initiated via one ormore touch inputs and/or touch movements on a touchpad, as well as oneor more conditions for executing the one or more touchpad gestureoperations. In this example, touchpad gesture operation identifier 228includes the same gesture operations as are included in touchscreengesture operation identifier 202. Specifically, touchpad gestureoperation identifier includes application window transition operation230, virtual desktop transition operation 236, application windowminimization operation 242, and application window restore operation248.

Application window transition operation 230 requires first condition 232and second condition 234 to be performed prior to triggering itsexecution. First condition 232 is the same condition as first condition206, except first condition 232 must be performed on the touchpad ratherthan the touchscreen. Similarly, second condition 234 is the samecondition as second condition 208, except second condition 234 must beperformed on the touchpad rather than the touchscreen. Once firstcondition 232 and second condition 234 are satisfied, gesture activatedshell operation executor 126 may execute application window transitionoperation 230, which may comprise same or similar operations as thoseperformed in relation to application window transition operation 204. Insome examples, application window transition operation 230 may comprisethe surfacing of application window preview elements for each openapplication window, rather than surfacing a single application window ata time, as may be the case with application window transition operation204.

Virtual desktop transition operation 236 requires first condition 238and second condition 240 to be performed prior to triggering itsexecution. First condition 238 is the same condition as first condition212, except first condition 238 must be performed on the touchpad ratherthan the touchscreen. Similarly, second condition 240 is the samecondition as second condition 214, except second condition 240 must beperformed on the touchpad rather than the touchscreen. Once firstcondition 238 and second condition 240 are satisfied, gesture activatedshell operation executor 126 may execute virtual desktop transitionoperation 236, which may comprise same or similar operations as thoseperformed in relation to virtual desktop transition operation 210.

Application window minimization operation 242 requires first condition244 and second condition 246 to be performed prior to triggering itsexecution. First condition 244 is the same condition as first condition218, except first condition 244 must be performed on the touchpad ratherthan the touchscreen. Similarly, second condition 246 is the samecondition as second condition 220, except second condition 246 must beperformed on the touchpad rather than the touchscreen. Once firstcondition 244 and second condition 246 are satisfied, gesture activatedshell operation executor 126 may execute application window minimizationoperation 242, which may comprise same or similar operations as thoseperformed in relation to application window minimization operation 216.

Application window restore operation 248 requires first condition 250and second condition 252 to be performed prior to triggering itsexecution. First condition 250 is the same condition as first condition224, except first condition 250 must be performed on the touchpad ratherthan the touchscreen. Similarly, second condition 252 is the samecondition as second condition 226, except second condition 252 must beperformed on the touchpad rather than the touchscreen. Once firstcondition 250 and second condition 252 are satisfied, gesture activatedshell operation executor 126 may execute application window restoreoperation 248, which may comprise same or similar operations as thoseperformed in relation to application window restore operation 222.

FIG. 3 illustrates the execution and display result of an applicationwindow transition gesture operation (e.g., application window transitionoperation 204), which has been initiated via touch input on atouchscreen. FIG. 3 includes computing device 302, 302*, and 302**,which are all the same computing device, displaying the results of anapplication window transition operation in an order in which they mayoccur (e.g., from computing device 302, to computing device 302*, tocomputing device 302**). Computing device 302 comprises a touchscreencomputing device (e.g., the screen of computing device 302 can registertouch inputs). In some examples, computing device 302 may comprise alaptop or other computing device that is connected to a touchpad.Computing device 302 may maintain a touchpad gesture manager comprisingthe identity of one or more touchpad gesture operations, and one or moreconditions of execution for each touchpad gesture. Computing device 302may additionally maintain a touchscreen gesture manager comprising anidentity of one or more touchscreen gesture operations corresponding tothe touchpad gesture operations, and one or more conditions of executionfor each touchscreen gesture operation. In other examples, computingdevice 302 may comprise a computing device that is not connected to atouchpad, such as a tablet or smart phone. In still additional examples,computing device 302 may comprise a display that is connected to acomputing device that executes a touchscreen gesture manager and/or atouchpad gesture manager.

Touchscreen 304 displays three application windows. Specifically,touchscreen 304 displays first application window 306, having a highestposition in the z-stack; second application window 308, having a secondhighest position in the z-stack; and third application window 310,having the lowest position in the z-stack. In this example, a threedigit input is received on touchscreen 304, as indicated by first touchinput 303. The receiving of the three digit input satisfies the firstcondition of the application window transition operation. It should beunderstood that in some examples, the first condition of the applicationwindow transition operation may comprise the receiving of a touchscreeninput of more or fewer digits (e.g., two digits, four digits).

Upon receiving first touch input 303 computing device 302* modifies adisplay property of each of the open application windows (e.g., firstapplication window 306*, second application window 308*, and thirdapplication window 310*). In this specific example, the modification ofthe display property comprises rendering the open application windows ina smaller size. In some examples, the smaller sized application windowsmay comprise live or static renderings of the open application windows(e.g., application window preview elements). In other examples, themodification of the display property may comprise highlighting theapplication windows, adding a border to the application windows, and/orcoloring the application windows. Other modifications that indicate afurther input may affect the open application windows may be applied tothe application windows and are within the scope of this application. Insome examples, the positions of the application windows in a z-order ofthe user interface may be saved to memory. For example, prior to or uponreceiving first touch input 303, computing device 302 may save to memorythat first application window 306 has a highest position in the z-order,second application window 308 has a second highest position in thez-order, and third application window 310 has a third highest positionin the z-order.

In this example, subsequent to the application windows being rendered ina smaller size, a lateral movement of the three digit input is receivedby touchscreen 304*, as indicated by second touch input 305. The lateralmovement of the three digit input satisfies the second condition of theapplication window transition operations. In other examples, the secondcondition of the application window transition operations may only befulfilled upon receiving the lateral movement of the correct number ofdigits (e.g., three digits) and the removal of those three digits fromthe touchscreen. In this example, second touch input 305 comprises amovement of the three digits on touchscreen 304* in the right direction.However, the second condition of the application window transitionoperation may be satisfied by a lateral movement of the three digitinput in the left direction.

Upon the fulfillment of the second condition of the application windowtransition operation, the application windows are restored to theiroriginal sizes and the application window order in the z-stack ismodified. Specifically, because second application window 308* wasdirectly behind first application window 306* in the z-order when thegesture operation began, second application window 308** is brought tothe top of the z-order, and first application window 306** is moveddirectly behind second application window 308**, with third applicationwindow 310** remaining in the third position in the z-order. However,the original z-order of each of the application windows when the gestureoperation began is maintained until input is received in one of theapplication windows to avoid getting stuck in a constant loop ofswitching between first application window 306** and second applicationwindow 308**. That is, if an additional inputs are received that satisfythe first and second conditions of the application window transitiongesture operation, the original z-order is analyzed, and thirdapplication window 310** would be brought to the front of the z-order asmore fully illustrated and described in relation to FIG. 4 . Only uponreceiving input in one of the application windows is the z-orderrefreshed in memory.

In this example, although application preview elements are illustratedas being rendered and displayed for all three application windows, inother examples, only one application window preview element may bedisplayed at a time during execution of the application windowtransition operation. Thus, in one example, when first touch input 303is received only a single application preview element corresponding tofirst application window 306* may be displayed. In another example, whensecond touch input 305 is received, only second application windowpreview element 308** may be displayed. Additionally, in some examples,rather than restoring the application windows to their original sizeupon the second condition of the gesture operation being fulfilled asillustrated, the application windows may be rendered in their modifiedform (e.g., smaller application window previews) until a touch input isreceived on one of the application windows in their modified form.

FIG. 4 illustrates the execution and display result of an additionaltouchscreen gesture input on the application preview elements surfacedvia execution of the application window transition gesture operation ofFIG. 3 . Computing device 402 is the same computing device as computingdevice 302. In this example, the first and second conditions of theapplication window transition have been fulfilled, which has resulted insecond application window 408 being displayed at the top of the z-order.In this example, first application window 406 is displayed directlybehind second application window 408, and third application window 410is displayed directly behind first application window 406.

In this example, touch input 401 is received. Touch input 401 comprisesthe receiving of a number of digits which meets the first condition ofexecution of the application window transition gesture operation. Inthis example the number of digits needed to fulfill the first conditionis three digits. However, in other examples the number of digits may bemore or fewer. Upon the first condition of execution being fulfilledcomputing device 402* modifies a display element of each of theapplication windows to indicate that a further input (e.g., an inputthat completes the gesture) may affect one or more of the applicationwindows. This is illustrated by the modified display size of each ofsecond application window 408* at the top of the z-order, firstapplication window 406* at the second position in the z-order, and thirdapplication window 410* at the third position in the z-order. It shouldbe understood that other modifications may be made to the applicationwindows upon fulfillment of the first condition of execution for thegesture. For example, the application windows may highlighted, receive abold outline, or be rendered in a different color.

A lateral movement of the three digit input is received by touchscreen402*, as indicated by second touch input 405. The lateral movement ofthe three digit input satisfies the second condition of the applicationwindow transition operations. In this example, second touch input 405comprises a movement of the three digits on touchscreen 402* in theright direction. However, the second condition of the application windowtransition operation may be satisfied by a lateral movement of the threedigit input in the left direction. In additional examples, the secondcondition of the application window transition operations may only besatisfied upon receiving the lateral swipe of the correct number ofdigits (e.g., three digits) and the removal of those three digits fromthe touchscreen.

Upon fulfillment of the second condition of the application windowtransition operation, the application windows are restored to theiroriginal size and reordered. Specifically, the original z-order that wassaved to memory (e.g., the z-order when touch input 303 was received inFIG. 3 ) corresponding to first application window 306 having a firstposition in the z-order, second application window 308 having a secondposition in the z-order, and third application window 310 having a thirdposition in the z-order, is analyzed. A determination is made based onthat original z-order that third application window 410** was originallydirectly behind second application window 408**. As such, thirdapplication window 410** is caused to be rendered at the top of thez-order on touchscreen 404**, second application window 408** is causedto be rendered directly behind third application window 410** in thez-order, and first application window 406** is caused to be rendereddirectly behind second application window 408** in the z-order. If aninput is received on third application window 410**, such as a singledigit touch input, a text input, or a mouse click, the z-order may beupdated in memory. If no such input is received to update the z-order inmemory, and the gesture operation is performed again on the applicationwindows displayed on computing device 402**, first application window406** would be rendered at the top of the z-order. However, if an inputis received to update the z-order in memory (e.g., C first position, Bsecond position, A third position), and the gesture operation isperformed again on the application windows displayed on computing device402**, second application window 408** would be rendered at the top ofthe z-order.

In this example, although application preview elements are illustratedas being rendered and displayed for all three application windows, inother examples, only one application window preview element may bedisplayed at a time during execution of the application windowtransition operation. That is, in some examples, only the applicationwindow preview element that is currently at the top of the z-order maybe displayed during execution of the application window transitionoperations.

FIG. 5 illustrates the execution and display result of a virtual desktoptransition gesture operation (e.g., virtual desktop transition gestureoperation 210), which has been initiated via a touch input on atouchscreen. FIG. 5 includes computing device 502, 502*, and 502**,which are all the same computing device, displaying the results of avirtual desktop gesture operation in an order in which they may occur(e.g., from computing device 502, to computing device 502*, to computingdevice 502**). Computing device 502 comprises a touchscreen computingdevice (e.g., the screen of computing device 502 can register touchinputs). In some examples, computing device 502 may comprise a laptop orother computing device that is connected to a touchpad. Computing device502 may maintain a touchpad gesture manager comprising the identity ofone or more touchpad gesture operations, and one or more conditions ofexecution for each touchpad gesture. Computing device 502 mayadditionally maintain a touchscreen gesture manager comprising anidentity of one or more touchscreen gesture operations corresponding tothe touchpad gesture operations, and one or more conditions of executionfor each touchscreen gesture operation. In other examples, computingdevice 502 may comprise a computing device that is not connected to atouchpad, such as a tablet or smart phone. In still additional examples,computing device 502 may comprise a display that is connected to acomputing device that executes a touchscreen gesture manager and/or atouchpad gesture manager.

Computing device 502 may maintain plurality of virtual desktops, andonly one virtual desktop may be currently executed by computing device502 at a given time. In this example, computing device 502 maintainsfirst virtual desktop 504 (e.g., virtual desktop A) and second virtualdesktop 506 (e.g., virtual desktop B). First virtual desktop 504 isbeing currently executed and displayed on computing device 502.

In this example, a four digit input is received on touchscreen 504, asindicated by first touch input 503. The receiving of the four digitinput satisfies the first condition of the virtual desktop transitionoperation. It should be understood that in some examples, the firstcondition of the virtual desktop transition operation may comprise thereceiving of a touchscreen input of more or fewer digits (e.g., threedigits, five digits).

Upon receiving first touch input 503 computing device 502* modifies adisplay property of first virtual desktop 504, as illustrated by firstvirtual desktop 504*. In this specific example, the modification of thedisplay property comprises rendering the desktop that is currently beingexecuted and displayed in a smaller size. In some examples, the smallersized virtual desktop may comprise a live or static rendering of thevirtual desktop (e.g., a virtual desktop preview element). In otherexamples, the modification of the display property may comprisehighlighting the virtual desktop, adding a border to the virtualdesktop, and/or coloring the virtual desktop. Other modifications thatindicate a further input may affect the virtual desktop that iscurrently being executed may be applied to the virtual desktop and arewithin the scope of this application. In some examples, upon receivingtouch input 503 and modifying the display property of first virtualdesktop 504, at least a portion of one or more other virtual desktopsmaintained by computing device 502 may be caused to be displayed. Insome examples, displayed portions of the one or more other virtualdesktops may comprise virtual desktop preview elements for the othervirtual desktops, or portions of virtual desktop preview elements forthe other virtual desktops.

In this example, subsequent to the virtual desktop being rendered in asmaller size, a lateral movement of the four digit input is received bytouchscreen 504*, as indicated by second touch input 505. The lateralmovement of the four digit input satisfies the second condition of thevirtual desktop transition operation. In this example, second touchinput 505 comprises a movement of the four digits on touchscreen 504* inthe right direction. However, the second condition of the virtualdesktop window transition operation may be satisfied by a lateralmovement of the four digit input in the left direction.

Upon the fulfillment of the second condition of the virtual desktoptransition operation, second virtual desktop 506 may be rendered and/oranimated as being moved to the center of touchscreen 504**, while firstvirtual desktop 504** may be rendered and/or animated as being movedoutside and to the right of touchscreen 504**. The rendering and/oranimation may correspond to the lateral movement of the digits ontouchscreen 504**. For example, as the digits move from left to right,the virtual desktops (or virtual desktop preview elements) may also movefrom left to right. Similarly, if the digits move from right to left,the virtual desktops (or virtual desktop preview elements) may also movefrom right to left.

In some examples, movement of the digits from left to right may causevirtual desktops to be consecutively surfaced in an order from mostrecently used to least recently used. In additional examples, movementof the digits from right to left may cause virtual desktops to beconsecutively surfaced in an order from least recently used to mostrecently used.

In this example, the user has not lifted the digits from touchscreen504** as illustrated by touch input 507. Thus, in this example, thevirtual desktops are maintained in their modified display state due tothe digits still being in contact with touchscreen 504**. However, inother examples (not shown) the virtual desktops may be maintained intheir modified display state even when the digits are removed fromtouchscreen 504**, until a subsequent input (e.g., touch input, mouseclick) is received on one of the virtual desktops in their modifieddisplay state.

FIG. 6 illustrates the execution and display result of removal of thedigits from the touchscreen of FIG. 4 after the second condition of thevirtual desktop transition operation is satisfied. Specifically,computing device 602 and 602* are the same computing device as computingdevice 502, 502*, and 502**.

Second virtual desktop 606 (virtual desktop B) is displayed in itspreview state on computing device 602. That is, the first and secondconditions of the virtual desktop transition operation have beenfulfilled, and the first virtual desktop preview element has beenreplaced by the second virtual desktop preview element. In this example,the four digit touch input has been maintained on touchscreen 604, asillustrated by touch input 605. Touch input 605 is subsequently removedfrom touchscreen 604, and virtual desktop B 606* is therefore caused tobe maximized and executed by computing device 602*.

FIG. 7 illustrates the execution and display result of an applicationwindow minimizing gesture operation (e.g., application window minimizinggesture operation 216), which has been initiated via a touch input on atouchscreen. FIG. 7 includes computing device 702, 702*, and 702**,which are all the same computing device, displaying the results of anapplication window minimizing operation in an order in which they mayoccur (e.g., from computing device 702, to computing device 702*, tocomputing device 702**). Computing device 702 comprises a touchscreencomputing device (e.g., the screen of computing device 702 can registertouch inputs). In some examples, computing device 702 may comprise alaptop or other computing device that is connected to a touchpad.Computing device 702 may maintain a touchpad gesture manager comprisingthe identity of one or more touchpad gesture operations, and one or moreconditions of execution for each touchpad gesture. Computing device 702may additionally maintain a touchscreen gesture manager comprising anidentity of one or more touchscreen gesture operations corresponding tothe touchpad gesture operations, and one or more conditions of executionfor each touchscreen gesture operation. In other examples, computingdevice 702 may comprise a computing device that is not connected to atouchpad, such as a tablet or smart phone. In still additional examples,computing device 702 may comprise a display that is connected to acomputing device that executes a touchscreen gesture manager and/or atouchpad gesture manager.

Touchscreen 702 displays three application windows. Specifically,touchscreen 702 displays first application window 706, secondapplication window 708, and third application window 710. In thisexample, touch input 703 is received on touchscreen 704. Touch input 703may comprise an input of a number of digits. In this example, the numberof digits is three digits. A determination may be made by touchscreengesture manager 110 that the number of digits of touch input 703 meetsthe first condition of the application window minimization operation. Inother examples, the number of digits needed to meet the first conditionof the application window minimization operation may be more or lessthan three digits.

Upon determining that the number of digits meets the first condition ofthe application window minimization operation, computing device 702*modifies a display property of each of the open application windows(e.g., first application window 706*, second application window 708*,third application window 710*). In this specific example, themodification of the display property comprises rendering the openapplication windows in a smaller size. In some examples, the smallersized application windows may comprise live or static renderings of theopen application windows (e.g., application window preview elements). Inother examples, modification of the display property may comprisehighlighting the application windows, adding a border to the applicationwindows, and/or coloring the application windows. Other modificationsthat indicate a further input may affect the open application windowsmay be applied to the application windows and are within the scope ofthis application.

In this example, subsequent to the application windows being rendered ina smaller size, downward vertical movement 705 of the three digit inputis received by touchscreen 704*. Downward vertical movement 705 of thethree digit input satisfies the second condition of the applicationwindow minimization operation.

Upon fulfillment of the second condition of the application windowminimization operation, each of the application windows areautomatically minimized and caused to no longer be displayed, asillustrated by computing device 702** and touchscreen 704**.

FIG. 8 illustrates the execution and display result of an applicationwindow restore gesture operation (application window restore operation222), which has been initiated via a touch input on a touchscreen. FIG.8 includes computing device 802 and computing device 802*, which are thesame computing device as computing device 702, 702*, and 702**.

In this example, the three application windows are currently minimizedon computing device 802. A first touch input 803 is received ontouchscreen 804. First touch input 803 comprises a three digit input inthis example. A determination may be made that first touch input 803,and specifically the number of digits of first touch input 803, fulfillsthe first condition of the application window restore operation.Although in this example, the number of digits needed to fulfill thefirst condition of the application window restore operation is three,more or fewer digits may be needed to fulfill the first condition inother examples.

Upward vertical movement 805 of the three digit input is then receivedby touchscreen 804. A determination may be made that upward verticalmovement 805 fulfills the second condition of the application windowrestore operation. Upon determining that upward vertical movement 805fulfills the second condition of the application window restoreoperation computing device 802* may cause the minimized applicationwindows to be restored and/or displayed on touchscreen 804*, asillustrated by first application window 806, second application window808, and third application window 810.

According to examples, if an upward vertical three digit input isreceived and the application windows are not currently minimized (e.g.,not minimized via the mechanisms described in relation to FIG. 7 ),application preview elements for each application window may bedisplayed. In some examples, if an upward vertical three digit input isreceived and the application windows are not currently minimized,application preview elements for each application window may bedisplayed in addition to displaying virtual desktop preview elements forone or more virtual desktops maintained by computing device 802. Instill additional examples, a four finger upward vertical input may causevirtual desktop preview elements for one or more virtual desktopsmaintained by computing device 802 to be displayed.

FIG. 9A is an exemplary method 900A for assisting with gestureoperations. The method 900A begins at a start operation and flow movesto operation 902A.

At operation 902A a touchpad gesture manager is maintained. The touchpadgesture manager may comprise an identity of a touchpad gestureoperation, a first condition of execution of the touchpad gestureoperation, and a second condition of execution of the touchpad gestureoperation. The first condition of execution of the touchpad gestureoperation may comprise an input of a number of digits on a touchpad, andthe second condition of execution of the touchpad gesture operation maycomprise a movement type of the number of digits on the touchpad. Insome examples, the movement type may comprise movement of the number ofdigits in a same direction (e.g., all digits concurrently moving in asame direction) on the touchpad.

From operation 902A flow continues to operation 904A where a touchscreengesture manager is maintained. The touchscreen gesture manager maycomprise an identity of a touchscreen gesture operation corresponding tothe touchpad gesture operation, a first condition of execution of thetouchscreen operation, and a second condition of execution of thetouchscreen gesture operation. The first condition of execution of thetouchscreen gesture operation may comprise an input of the number ofdigits (e.g., the same number of digits as needed to fulfill the firstcondition of execution of the touchpad gesture operation) on atouchscreen, and the second condition of execution of the touchscreengesture operation may comprise the movement type of the number of digits(e.g., the same movement type and number of digits as need to fulfillthe second condition of execution of the touchpad gesture operation) onthe touchscreen.

According to examples, the touchpad gesture operation and thetouchscreen gesture operation may comprise application window transitionoperations. In other examples, the touchpad gesture operation and thetouchscreen gesture operation may comprise virtual desktop transitionoperations. In additional examples, the touchpad gesture operation andthe touchscreen gesture operation may comprise application windowminimization operations or application window restore operations. Thetouchpad gesture operation and/or the touchscreen gesture operation maycomprise a plurality of intermediate operations that makeup the touchpadgesture operation and/or touchscreen gesture operation. For example, afirst intermediate operation may comprise modifying a display propertyof one or more application windows or virtual desktops, and a secondintermediate operation may comprise displaying an application window orapplication window preview element at a different order in a z-stack, ordisplaying a different virtual desktop or virtual desktop previewelement.

From operation 904A flow moves to an end operation and the method 900Aends.

FIG. 9B is an exemplary method 900B for executing an application windowtransition gesture operation. The method 900B begins at a startoperation and the method moves to operation 902B.

At operation 902B a first software application instance is executed in afirst application window and a second software application instance isexecuted in a second application window. The first application windowmay be displayed at a top of a z-order of a user interface displayed ona touchscreen. Thus, the first application window may be displayed atthe foreground or closer to the foreground than the second applicationwindow.

From operation 902B flow continues to operation 904B where a multi-digittouch input is received by the touchscreen. The multi-digit touch inputmay comprise an input of two or more digits (e.g., two or more fingers,two or more conductive objects). In some examples, the multi-digit touchinput may comprise an input of three digits. The multi-digit touch inputcomprises concurrent touching of the touchscreen by the multiple digits.In some examples, the z-order of each of the application windows may besaved to memory prior to or upon the multi-digit touch input beingreceived.

From operation 904B flow continues to operation 906B where adetermination is made that a number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of atouchscreen gesture operation. In some examples, the determination maycomprise determining that the number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of anytouchscreen gesture operation. In other examples, the determination maycomprise determining that the number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of aspecific touchscreen gesture operation (e.g., an application windowtransition gesture operation, a virtual desktop transition gestureoperation).

From operation 906B flow continues to operation 908B where a displayproperty of the first application window and the second applicationwindow is modified based on the determination that the number of digitsthat are in contact with the touchscreen is mapped to the firstcondition of the touchscreen gesture operation. Modifying the displayproperty may comprise modifying the size of the first application windowand the second application window, modifying one or more colors of thefirst application window and the second application window, adding aborder to the first application window and the second applicationwindow, or highlighting the first application window and the secondapplication window, for example. In some examples, modifying the displayproperty of the first application window and the second applicationwindow may comprise replacing the first application window and thesecond application window with application window preview elements thatcomprises a live or static renderings of the first application windowand the second application window.

From operation 908B flow continues to operation 910B where adetermination of a movement of the multi-digit touch input on thetouchscreen is made. That is, a determination that the multiple digitshave moved on the touchscreen is made and a determination of a directionof movement is also made. In some examples, a determination may also bemade as to how far in a specific direction the multiple digits havemoved on the touchscreen.

From operation 910B flow continues to operation 912B where adetermination is made that the movement fulfills a second condition ofexecution of the touchscreen gesture operation. In some examples, thesecond condition may comprise the receiving of a left or right lateralmovement of the multiple digits. In other examples, the second conditionmay comprise the receiving of a left or right lateral movement of themultiple digits of more than a specified length.

From operation 912B flow continues to operation 914B where thetouchscreen gesture operation is executed. The execution of thetouchscreen gesture operation may comprise causing the secondapplication window to be displayed at the top of the z-order of the userinterface. In some examples, the digits may be removed from the touchscreen, which may cause the first application window and the secondapplication window to be returned to their non-modified state (e.g., nolonger displayed in a smaller size, no longer highlighted, no longerdisplayed in a different color). In other examples, the first and secondapplication windows may be returned to their non-modified state upondetermining that the movement fulfilled the second condition ofexecution of the touchscreen gesture operation. touchpad

From operation 914B flow moves to an end operation and the method 900Bends.

FIG. 9C is an exemplary method 900C for executing a virtual desktoptransition gesture operation. The method 900C begins at a startoperation and flow moves to operation 902C.

At operation 902C a first virtual desktop and a second virtual desktopare maintained, and the first virtual desktop is currently displayed ona touchscreen. According to examples, only a single virtual desktop maybe concurrently executed and displayed by the computing device thatmaintains the first virtual desktop and the second virtual desktop. Thefirst virtual desktop and second virtual desktop may be associated withone or more users accounts. For example, a user account may create afirst virtual desktop for work computing and a second virtual desktopfor personal/home computing.

From operation 902C flow continues to operation 904C where a multi-digittouch input is received by the touchscreen. The multi-digit touch inputmay comprise an input of two or more digits (e.g., two or more fingers,two or more conductive objects). In some examples, the multi-digit touchinput may comprise an input of four digits. The multi-digit touch inputcomprises concurrent touching of the touchscreen by the multiple digits.

From operation 904C flow continues to operation 906C where adetermination is made that the number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of atouchscreen gesture operation. In some examples, the determination maycomprise determining that the number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of anytouchscreen gesture operation. In other examples, the determination maycomprise determining that the number of digits that are in contact withthe touchscreen is mapped to a first condition of execution of aspecific touchscreen gesture operation (e.g., an application windowtransition gesture operation, a virtual desktop transition gestureoperation).

From operation 906C flow continues to operation 908C where a displayproperty of the first virtual desktop is modified based on thedetermination that the number of digits that are in contact with thetouchscreen is mapped to the first condition of the touchscreen gestureoperation. Modifying the display property may comprise modifying thesize of the first virtual desktop, modifying one or more colors of thefirst virtual desktop, adding a border to the first virtual desktop, orhighlighting the first virtual desktop, for example. In some examples,modifying the display property of the first virtual desktop may comprisereplacing the first virtual desktop with a virtual desktop previewelement that comprises a live or static rendering of the first virtualdesktop.

From operation 908C flow continues to operation 910C where adetermination of a movement of the multi-digit touch input on thetouchscreen is made. That is, a determination that the multiple digitshave moved on the touchscreen is made and a determination of a directionof movement is also made. In some examples, a determination may also bemade as to how far in a specific direction the multiple digits havemoved on the touchscreen.

From operation 910C flow continues to operation 912C where adetermination is made that the movement fulfills a second condition ofexecution of the touchscreen gesture operation. In some examples, thesecond condition may comprise the receiving of a left or right lateralmovement of the multiple digits. In other examples, the second conditionmay comprise the receiving of a left or right lateral movement of themultiple digits of more than a specified length.

From operation 912C flow continues to operation 914C where thetouchscreen gesture operation is executed. Execution of the touchscreengesture operation may comprise causing a preview element of the secondvirtual desktop to be currently displayed on the touchscreen. In someexamples, upon receiving an indication that the number of digits are nolonger in contact with the touchscreen, the second virtual desktop maybe expanded and executed. In other examples, the preview element of thesecond virtual desktop may be maintained even when the number of digitsare no longer in contact with the touchscreen, a selection may be madeof the preview element of the second virtual desktop and the secondvirtual desktop may then be expanded and executed. The selection maycomprise an input (e.g., mouse click, touchpad input, touchscreen input)on the preview element of the second virtual desktop.

From operation 914C flow moves to an end operation and the method 900Cends.

FIGS. 10 and 11 illustrate a mobile computing device 1000, for example,a mobile telephone, a smart phone, wearable computer (such as smarteyeglasses), a tablet computer, an e-reader, a laptop computer, or otherAR compatible computing device, with which embodiments of the disclosuremay be practiced. With reference to FIG. 10 , one aspect of a mobilecomputing device 1000 for implementing the aspects is illustrated. In abasic configuration, the mobile computing device 1000 is a handheldcomputer having both input elements and output elements. The mobilecomputing device 1000 typically includes a display 1005 and one or moreinput buttons 1010 that allow the user to enter information into themobile computing device 1000. The display 1005 of the mobile computingdevice 1000 may also function as an input device (e.g., a touch screendisplay). If included, an optional side input element 1015 allowsfurther user input. The side input element 1015 may be a rotary switch,a button, or any other type of manual input element. In alternativeaspects, mobile computing device 1000 may incorporate more or fewerinput elements. For example, the display 1005 may not be a touch screenin some embodiments. In yet another alternative embodiment, the mobilecomputing device 1000 is a portable phone system, such as a cellularphone. The mobile computing device 1000 may also include an optionalkeypad 1035. Optional keypad 1035 may be a physical keypad or a “soft”keypad generated on the touch screen display. In various embodiments,the output elements include the display 1005 for showing a graphicaluser interface (GUI), a visual indicator 1020 (e.g., a light emittingdiode), and/or an audio transducer 1025 (e.g., a speaker). In someaspects, the mobile computing device 1000 incorporates a vibrationtransducer for providing the user with tactile feedback. In yet anotheraspect, the mobile computing device 1000 incorporates input and/oroutput ports, such as an audio input (e.g., a microphone jack), an audiooutput (e.g., a headphone jack), and a video output (e.g., a HDMI port)for sending signals to or receiving signals from an external device.

FIG. 11 is a block diagram illustrating the architecture of one aspectof a mobile computing device. That is, the mobile computing device 1100can incorporate a system (e.g., an architecture) 1102 to implement someaspects. In one embodiment, the system 1102 is implemented as a “smartphone” capable of running one or more applications (e.g., browser,e-mail, calendaring, contact managers, messaging clients, games, andmedia clients/players). In some aspects, the system 1102 is integratedas a computing device, such as an integrated personal digital assistant(PDA) and wireless phone.

One or more application programs 1166 may be loaded into the memory 1162and run on or in association with the operating system 1164. Examples ofthe application programs include phone dialer programs, e-mail programs,personal information management (PIM) programs, word processingprograms, spreadsheet programs, Internet browser programs, messagingprograms, and so forth. The system 1102 also includes a non-volatilestorage area 1168 within the memory 1162. The non-volatile storage area1168 may be used to store persistent information that should not be lostif the system 1102 is powered down. The application programs 1166 mayuse and store information in the non-volatile storage area 1168, such ase-mail or other messages used by an e-mail application, and the like. Asynchronization application (not shown) also resides on the system 1102and is programmed to interact with a corresponding synchronizationapplication resident on a host computer to keep the information storedin the non-volatile storage area 1168 synchronized with correspondinginformation stored at the host computer. As should be appreciated, otherapplications may be loaded into the memory 1162 and run on the mobilecomputing device 1100, including instructions for providing andoperating an asset disposition engine.

The system 1102 has a power supply 1170, which may be implemented as oneor more batteries. The power supply 1170 might further include anexternal power source, such as an AC adapter or a powered docking cradlethat supplements or recharges the batteries.

The system 1102 may also include a radio interface layer 1172 thatperforms the function of transmitting and receiving radio frequencycommunications. The radio interface layer 1172 facilitates wirelessconnectivity between the system 1102 and the “outside world,” via acommunications carrier or service provider. Transmissions to and fromthe radio interface layer 1172 are conducted under control of theoperating system 1164. In other words, communications received by theradio interface layer 1172 may be disseminated to the applicationprograms 1166 via the operating system 1164, and vice versa.

The visual indicator 1020 may be used to provide visual notifications,and/or an audio interface 1174 may be used for producing audiblenotifications via the audio transducer 1025. In the illustratedembodiment, the visual indicator 1020 is a light emitting diode (LED)and the audio transducer 1025 is a speaker. These devices may bedirectly coupled to the power supply 1170 so that when activated, theyremain on for a duration dictated by the notification mechanism eventhough the processor 1160 and other components might shut down forconserving battery power. The LED may be programmed to remain onindefinitely until the user takes action to indicate the powered-onstatus of the device. The audio interface 1174 is used to provideaudible signals to and receive audible signals from the user. Forexample, in addition to being coupled to the audio transducer 1025, theaudio interface 1174 may also be coupled to a microphone to receiveaudible input, such as to facilitate a telephone conversation. Inaccordance with embodiments of the present disclosure, the microphonemay also serve as an audio sensor to facilitate control ofnotifications, as will be described below. The system 1102 may furtherinclude a video interface 1176 that enables an operation of an on-boardcamera 1030 to record still images, video stream, and the like.

A mobile computing device 1100 implementing the system 1102 may haveadditional features or functionality. For example, the mobile computingdevice 1100 may also include additional data storage devices (removableand/or non-removable) such as, magnetic disks, optical disks, or tape.Such additional storage is illustrated in FIG. 11 by the non-volatilestorage area 1168.

Data/information generated or captured by the mobile computing device1100 and stored via the system 1102 may be stored locally on the mobilecomputing device 1100, as described above, or the data may be stored onany number of storage media that may be accessed by the device via theradio interface layer 1172 or via a wired connection between the mobilecomputing device 1100 and a separate computing device associated withthe mobile computing device 1100, for example, a server computer in adistributed computing network, such as the Internet. As should beappreciated such data/information may be accessed via the mobilecomputing device 1100 via the radio interface layer 1172 or via adistributed computing network. Similarly, such data/information may bereadily transferred between computing devices for storage and useaccording to well-known data/information transfer and storage means,including electronic mail and collaborative data/information sharingsystems.

FIG. 12 is a block diagram illustrating physical components (e.g.,hardware) of a computing device 1200 with which aspects of thedisclosure may be practiced. The computing device components describedbelow may have computer executable instructions for executingtouchscreen gestures that have same conditions as their touchpadcounterparts. In a basic configuration, the computing device 1200 mayinclude at least one processing unit 1202 and a system memory 1204.Depending on the configuration and type of computing device, the systemmemory 1204 may comprise, but is not limited to, volatile storage (e.g.,random access memory), non-volatile storage (e.g., read-only memory),flash memory, or any combination of such memories. The system memory1204 may include an operating system 1205 suitable for running one ormore software applications. The operating system 1205, for example, maybe suitable for controlling the operation of the computing device 1200.Furthermore, embodiments of the disclosure may be practiced inconjunction with a graphics library, other operating systems, or anyother application program and is not limited to any particularapplication or system. This basic configuration is illustrated in FIG.12 by those components within a dashed line 1208. The computing device1200 may have additional features or functionality. For example, thecomputing device 1200 may also include additional data storage devices(removable and/or non-removable) such as, for example, magnetic disks,optical disks, or tape. Such additional storage is illustrated in FIG.12 by a removable storage device 1209 and a non-removable storage device1210.

As stated above, a number of program modules and data files may bestored in the system memory 1204. While executing on the processing unit1202, the program modules 1206 (e.g., gesture application 1220) mayperform processes including, but not limited to, the aspects, asdescribed herein. Digit detection engine 1211 may determine whether oneor more digits are in contact with a touchscreen or touchpad, anddetermine a number of digits that are in contact with a touchscreen ortouchpad. Digit movement detection engine 1213 may determine a directionof travel of one or more digits on a touchscreen or touchpad, a lengthof travel of one or more digits on a touchscreen or touchpad, and/or aspeed of travel of one or more digits on a touchscreen or touchpad.Gesture operation identifier 1215 may determine whether one or moreconditions of a gesture operations have been satisfied. Gestureactivated shell operation executor 1217 may receive an indication thatone or more conditions of a gesture operation have been satisfied, andcause one or more shell actions corresponding to the gesture operationto be executed based on that indication.

Furthermore, embodiments of the disclosure may be practiced in anelectrical circuit comprising discrete electronic elements, packaged orintegrated electronic chips containing logic gates, a circuit utilizinga microprocessor, or on a single chip containing electronic elements ormicroprocessors. For example, embodiments of the disclosure may bepracticed via a system-on-a-chip (SOC) where each or many of thecomponents illustrated in FIG. 12 may be integrated onto a singleintegrated circuit. Such an SOC device may include one or moreprocessing units, graphics units, communications units, systemvirtualization units and various application functionality all of whichare integrated (or “burned”) onto the chip substrate as a singleintegrated circuit. When operating via an SOC, the functionality,described herein, with respect to the capability of client to switchprotocols may be operated via application-specific logic integrated withother components of the computing device 1200 on the single integratedcircuit (chip). Embodiments of the disclosure may also be practicedusing other technologies capable of performing logical operations suchas, for example, AND, OR, and NOT, including but not limited tomechanical, optical, fluidic, and quantum technologies. In addition,embodiments of the disclosure may be practiced within a general purposecomputer or in any other circuits or systems.

The computing device 1200 may also have one or more input device(s) 1212such as a keyboard, a mouse, a pen, a sound or voice input device, atouch or swipe input device, etc. The output device(s) 1214 such as adisplay, speakers, a printer, etc. may also be included. Theaforementioned devices are examples and others may be used. Thecomputing device 1200 may include one or more communication connections1216 allowing communications with other computing devices 1215. Examplesof suitable communication connections 1216 include, but are not limitedto, radio frequency (RF) transmitter, receiver, and/or transceivercircuitry; universal serial bus (USB), parallel, and/or serial ports.

The term computer readable media as used herein may include computerstorage media. Computer storage media may include volatile andnonvolatile, removable and non-removable media implemented in any methodor technology for storage of information, such as computer readableinstructions, data structures, or program modules. The system memory1204, the removable storage device 1209, and the non-removable storagedevice 1210 are all computer storage media examples (e.g., memorystorage). Computer storage media may include RAM, ROM, electricallyerasable read-only memory (EEPROM), flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tape, magnetic disk storage orother magnetic storage devices, or any other article of manufacturewhich can be used to store information and which can be accessed by thecomputing device 1200. Any such computer storage media may be part ofthe computing device 1200. Computer readable media and computer storagemedia as described herein does not include transitory media such as acarrier wave or other propagated or modulated data signal.

Communication media may be embodied by computer readable instructions,data structures, program modules, or other data in a modulated datasignal, such as a carrier wave or other transport mechanism, andincludes any information delivery media. The term “modulated datasignal” may describe a signal that has one or more characteristics setor changed in such a manner as to encode information in the signal. Byway of example, and not limitation, communication media may includewired media such as a wired network or direct-wired connection, andwireless media such as acoustic, radio frequency (RF), infrared, andother wireless media.

FIG. 13 illustrates one aspect of the architecture of a system forprocessing data received at a computing system from a remote source,such as a personal/general computer 1304, tablet computing device 1306,or mobile computing device 1308, as described above. Content displayedat server device 1302 may be stored in different communication channelsor other storage types. For example, various documents may be storedusing a directory service 1322, a web portal 1324, a mailbox service1326, an instant messaging store 1328, or a social networking site 1330.The program modules 1306 may be employed by a client that communicateswith server device 1302, and/or the program modules 1206 may be employedby server device 1302. The server device 1302 may provide data to andfrom a client computing device such as a personal/general computer 1304,a tablet computing device 1306 and/or a mobile computing device 1308(e.g., a smart phone) through a network 1315. By way of example, thecomputer system described above may be embodied in a personal/generalcomputer 1304, a tablet computing device 1306 and/or a mobile computingdevice 1308 (e.g., a smart phone). Any of these embodiments of thecomputing devices may obtain content from the store 1316, in addition toreceiving graphical data useable to be either pre-processed at agraphic-originating system, or post-processed at a receiving computingsystem.

Aspects of the present disclosure, for example, are described above withreference to block diagrams and/or operational illustrations of methods,systems, and computer program products according to aspects of thedisclosure. The functions/acts noted in the blocks may occur out of theorder as shown in any flowchart. For example, two blocks shown insuccession may in fact be executed substantially concurrently or theblocks may sometimes be executed in the reverse order, depending uponthe functionality/acts involved.

The description and illustration of one or more aspects provided in thisapplication are not intended to limit or restrict the scope of thedisclosure as claimed in any way. The aspects, examples, and detailsprovided in this application are considered sufficient to conveypossession and enable others to make and use the best mode of claimeddisclosure. The claimed disclosure should not be construed as beinglimited to any aspect, example, or detail provided in this application.Regardless of whether shown and described in combination or separately,the various features (both structural and methodological) are intendedto be selectively included or omitted to produce an embodiment with aparticular set of features. Having been provided with the descriptionand illustration of the present disclosure, one skilled in the art mayenvision variations, modifications, and alternate aspects falling withinthe spirit of the broader aspects of the general inventive conceptembodied in this application that do not depart from the broader scopeof the claimed disclosure. The various embodiments described above areprovided by way of illustration only and should not be construed tolimit the claims attached hereto. Those skilled in the art will readilyrecognize various modifications and changes that may be made withoutfollowing the example embodiments and applications illustrated anddescribed herein, and without departing from the true spirit and scopeof the following claims.

What is claimed is:
 1. A computer-implemented method comprising:executing a first software application instance in a first applicationwindow and a second software application instance in a secondapplication window, wherein the first application window is displayed ata top of a z-order of a user interface displayed on a touchscreen;receiving, by the touchscreen, a multi-digit touch input; determiningthat a number of digits that are in contact with the touchscreen ismapped to a first condition of execution of a touchscreen gestureoperation; modifying, based on the determination that the number ofdigits that are in contact with the touchscreen is mapped to the firstcondition of the touchscreen gesture operation, a display property ofthe first application window and the second application window;determining a movement of the multi-digit touch input on thetouchscreen; determining that the movement fulfills a second conditionof execution of the touchscreen gesture operation; determining thatthere is a corresponding touchpad gesture operation to the touchscreengesture operation; identifying a joint shell operation for execution ofthe touchscreen gesture operation and the corresponding touchpad gestureoperation; identifying differing operation elements corresponding to thejoint shell operation for execution of the touchscreen gestureoperation, wherein the differing operation elements execute differentlyfor the touchscreen gesture operation than for the correspondingtouchpad gesture operation; and executing the touchscreen gestureoperation using the joint shell operation and the differing operationelements, wherein execution of the touchscreen gesture operationcomprises causing the second application window to be displayed at thetop of the z-order of the user interface.
 2. The computer-implementedmethod of claim 1, wherein modifying the display property of the firstapplication window and the second application window comprises modifyinga size of the first application window and a size of the secondapplication window.
 3. The computer-implemented method of claim 1,further comprising: determining that the multi-digit touch input is nolonger being received; and causing, based on the determination that themulti-digit touch input is no longer being received, the modifieddisplay property of the first application window and the secondapplication window to no longer be modified.
 4. The computer-implementedmethod of claim 1, wherein modifying the display property of the firstapplication window and the second application window comprises modifyinga color of the first application window and a color of the secondapplication window.
 5. The computer-implemented method of claim 1,further comprising: determining that the multi-digit touch input is nolonger in contact with the touchscreen; and maintaining the modifieddisplay property of the first application window and the modifieddisplay property of the second application window.
 6. Thecomputer-implemented method of claim 5, further comprising: receiving atouch input at the second application window; and causing the secondapplication window to be restored at a foreground of the user interface.7. The computer-implemented method of claim 5, wherein there is a thirdsoftware application instance executed in a third application window,and wherein the method further comprises: receiving, by the touchscreen,a second multi-digit touch input; determining a movement of the secondmulti-digit touch input on the touchscreen; determining that themovement of the second multi-digit touch input on the touchscreenfulfills the second condition of the touchscreen gesture operation; andexecuting the touchscreen gesture operation again, wherein execution ofthe touchscreen gesture operation again comprises causing the thirdapplication window to be displayed at the top of the z-order of the userinterface.
 8. The computer-implemented method of claim 1, whereinreceiving an input of the number of digits, on a touchpad connected to acomputing device executing the first software application instance andthe second software application instance, is mapped to a first conditionof execution of a touchpad gesture operation for surfacing applicationpreview elements.
 9. The computer-implemented method of claim 8, whereinreceiving a movement of the number of digits, on the touchpad, is mappedto a second condition of execution of the touchpad gesture operation forsurfacing application preview elements.
 10. A computer-readable mediacomprising executable instructions that, upon execution by a processor,cause the processor to: execute a first software application instance ina first application window and a second software application instance ina second application window, wherein the first application window isdisplayed at a top of a z-order of a user interface displayed on atouchscreen; receive, via the touchscreen, a multi-digit touch input;determine that a number of digits that are in contact with thetouchscreen is mapped to a first condition of execution of a touchscreengesture operation; modify, based on the determination that the number ofdigits that are in contact with the touchscreen is mapped to the firstcondition of the touchscreen gesture operation, a display property ofthe first application window and the second application window;determine a movement of the multi-digit touch input on the touchscreen;determine that the movement fulfills a second condition of execution ofthe touchscreen gesture operation; determine that there is acorresponding touchpad gesture operation to the touchscreen gestureoperation; identify a joint shell operation for execution of thetouchscreen gesture operation and the corresponding touchpad gestureoperation; identify differing operation elements corresponding to thejoint shell operation for execution of the touchscreen gestureoperation, wherein the differing operation elements execute differentlyfor the touchscreen gesture operation than for the correspondingtouchpad gesture operation; and execute the touchscreen gestureoperation using the joint shell operation and the differing operationelements, wherein execution of the touchscreen gesture operationcomprises causing the second application window to be displayed at thetop of the z-order of the user interface.
 11. The computer-readablemedia of claim 10, wherein the executable instructions to modify thedisplay property of the first application window and the secondapplication window comprise further executable instructions that, uponexecution by the processor, cause the processor to: modify a size of thefirst application window and a size of the second application window.12. The computer-readable media of claim 10, wherein the executableinstructions comprise further executable instructions that, uponexecution by the processor, cause the processor to: determine that themulti-digit touch input is no longer being received; and cause, based onthe determination that the multi-digit touch input is no longer beingreceived, the modified display property of the first application windowand the second application window to no longer be modified.
 13. Thecomputer-readable media of claim 10, wherein the executable instructionsto modify the display property of the first application window and thesecond application window comprise further executable instructions that,upon execution by the processor, cause the processor to: modify a colorof the first application window and a color of the second applicationwindow.
 14. The computer-readable media of claim 10, wherein theexecutable instructions comprise further executable instructions that,upon execution by the processor, cause the processor to: determine thatthe multi-digit touch input is no longer in contact with thetouchscreen; and maintain the modified display property of the firstapplication window and the modified display property of the secondapplication window.
 15. The computer-readable media of claim 14, whereinthe executable instructions comprise further executable instructionsthat, upon execution by the processor, cause the processor to: receive atouch input at the second application window; and cause the secondapplication window to be restored at a foreground of the user interface.16. The computer-readable media of claim 14, wherein there is a thirdsoftware application instance executed in a third application window,and wherein the executable instructions comprise further executableinstructions that, upon execution by the processor, cause the processorto: receive, via the touchscreen, a second multi-digit touch input;determine a movement of the second multi-digit touch input on thetouchscreen; determine that the movement of the second multi-digit touchinput on the touchscreen fulfills the second condition of thetouchscreen gesture operation; and execute the touchscreen gestureoperation again, wherein execution of the touchscreen gesture operationagain comprises causing the third application window to be displayed atthe top of the z-order of the user interface.
 17. The computer-readablemedia of claim 10, wherein receiving an input of the number of digits,on a touchpad connected to a computing device executing the firstsoftware application instance and the second software applicationinstance, is mapped to a first condition of execution of a touchpadgesture operation for surfacing application preview elements.
 18. Thecomputer-readable media of claim 17, wherein receiving a movement of thenumber of digits, on the touchpad, is mapped to a second condition ofexecution of the touchpad gesture operation for surfacing applicationpreview elements.
 19. A system comprising: a touchscreen; a touchpaddistinct from the touchscreen; a processor; and a memory, functionallycoupled to the processor, the memory having stored thereon instructionsthat, upon execution by the processor, cause the processor to: execute afirst software application instance in a first application window and asecond software application instance in a second application window,wherein the first application window is displayed at a top of a z-orderof a user interface displayed on a touchscreen; receive, via thetouchscreen, a multi-digit touch input; determine that a number ofdigits that are in contact with the touchscreen is mapped to a firstcondition of execution of a touchscreen gesture operation; modify, basedon the determination that the number of digits that are in contact withthe touchscreen is mapped to the first condition of the touchscreengesture operation, a display property of the first application windowand the second application window; determine a movement of themulti-digit touch input on the touchscreen; determine that the movementfulfills a second condition of execution of the touchscreen gestureoperation; determine that there is a corresponding touchpad gestureoperation to the touchscreen gesture operation; identify a joint shelloperation for execution of the touchscreen gesture operation and thecorresponding touchpad gesture operation; identify differing operationelements corresponding to the joint shell operation for execution of thetouchscreen gesture operation, wherein the differing operation elementsexecute differently for the touchscreen gesture operation than for thecorresponding touchpad gesture operation; and execute the touchscreengesture operation using the joint shell operation and the differingoperation elements, wherein execution of the touchscreen gestureoperation comprises causing the second application window to bedisplayed at the top of the z-order of the user interface.
 20. Thesystem of claim 19, wherein the instructions to modify the displayproperty of the first application window and the second applicationwindow comprise further instructions that, upon execution by theprocessor, cause the processor to: modify a size of the firstapplication window and a size of the second application window.